package com.galaxy.device.service;

import com.galaxy.common.mybatis.core.page.PageQuery;
import com.galaxy.common.mybatis.core.page.TableDataInfo;
import com.galaxy.device.domain.DeviceBase;
import com.galaxy.device.domain.bo.DeviceBaseBo;
import com.galaxy.device.domain.vo.DeviceBaseVo;

import java.util.Collection;
import java.util.List;

/**
 * 设备基础信息Service接口
 */
public interface IDeviceBaseService {

    /**
     * 查询设备基础信息
     */
    DeviceBase queryById(Long id,  Long type);

    DeviceBaseVo queryVoById(Long id,  Long type);

    String getDeviceNo(Long id);

    DeviceBaseVo getInfoByNo(String deviceNo);

    /**
     * 查询设备基础信息列表
     */
    TableDataInfo<DeviceBaseVo> queryPageList(DeviceBaseBo bo, PageQuery pageQuery);

    /**
     * 查询设备基础信息列表
     */
    List<DeviceBaseVo> queryList(DeviceBaseBo bo);

    /**
     * 新增设备基础信息
     */
    Boolean insertByBo(DeviceBaseBo bo);

    /**
     * 修改设备基础信息
     */
    Boolean updateByBo(DeviceBaseBo bo);
    /**
     * 修改设备基础信息
     */
    Boolean updateStatusByDeviceNo(DeviceBaseBo bo);


    Boolean updateOfflineByDeviceNo(Long deviceID);
    /**
     * 校验并批量删除设备基础信息信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    Boolean updateCount(Long id, Integer count);

    /**
     * 获取设备总数（实时）
     */
    Long getTotalDevices();

    /**
     * 获取在线设备数（实时）
     */
    Long getOnlineDevices();
}
